subdirs-all := $(subdirs-y) $(subdirs-n)
-default: $(subdirs-y)
+obj-y += $(patsubst %,%/built_in.o,$(subdirs-y))
+
+default: built_in.o
+built_in.o: $(obj-y)
+ $(LD) $(LDFLAGS) -r -o $@ $^
.PHONY: FORCE
FORCE:
-%/: FORCE
+%/built_in.o: FORCE
$(MAKE) -C $*
clean: $(addprefix _clean_, $(subdirs-all))
+ rm -f *.o *~ core
_clean_%/: FORCE
$(MAKE) -C $* clean
-
OBJS := $(patsubst %.S,%.o,$(S_SRCS))
OBJS += $(patsubst %.c,%.o,$(C_SRCS))
-ALL_OBJS-y :=
-CFLAGS-y :=
-subdirs-y :=
-subdirs-n :=
-
include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
# Note that link order matters!
-ALL_OBJS-y += $(BASEDIR)/common/common.o
-ALL_OBJS-y += $(BASEDIR)/drivers/char/driver.o
-ALL_OBJS-$(HAS_ACPI) += $(BASEDIR)/drivers/acpi/driver.o
-ALL_OBJS-$(ACM_SECURITY) += $(BASEDIR)/acm/acm.o
+ALL_OBJS-y += $(BASEDIR)/common/built_in.o
+ALL_OBJS-y += $(BASEDIR)/drivers/built_in.o
+ALL_OBJS-$(ACM_SECURITY) += $(BASEDIR)/acm/built_in.o
ALL_OBJS-y += $(BASEDIR)/arch/$(TARGET_ARCH)/arch.o
CFLAGS-y += -g -D__XEN__
-
include $(BASEDIR)/Rules.mk
-OBJS = acm_core.o
-OBJS += acm_policy.o
-OBJS += acm_simple_type_enforcement_hooks.o
-OBJS += acm_chinesewall_hooks.o
-OBJS += acm_null_hooks.o
-
-default: acm.o
-acm.o: $(OBJS)
- $(LD) $(LDFLAGS) -r -o acm.o $(OBJS)
+obj-y += acm_core.o
+obj-y += acm_policy.o
+obj-y += acm_simple_type_enforcement_hooks.o
+obj-y += acm_chinesewall_hooks.o
+obj-y += acm_null_hooks.o
-clean:
- rm -f *.o *~ core
+include $(BASEDIR)/Post.mk
include $(BASEDIR)/Rules.mk
-ifneq ($(perfc),y)
-OBJS := $(subst perfc.o,,$(OBJS))
-endif
-ifneq ($(crash_debug),y)
-OBJS := $(patsubst gdbstub.o,,$(OBJS))
-endif
+obj-y += acm_ops.o
+obj-y += bitmap.o
+obj-y += dom0_ops.o
+obj-y += domain.o
+obj-y += elf.o
+obj-y += event_channel.o
+obj-y += grant_table.o
+obj-y += kernel.o
+obj-y += keyhandler.o
+obj-y += lib.o
+obj-y += memory.o
+obj-y += multicall.o
+obj-y += page_alloc.o
+obj-y += rangeset.o
+obj-y += sched_bvt.o
+obj-y += sched_sedf.o
+obj-y += schedule.o
+obj-y += softirq.o
+obj-y += string.o
+obj-y += symbols.o
+obj-y += trace.o
+obj-y += timer.o
+obj-y += vsprintf.o
+obj-y += xmalloc.o
-default: common.o
-common.o: $(OBJS)
- $(LD) $(LDFLAGS) -r -o common.o $(OBJS)
+obj-$(perfc) += perfc.o
+obj-$(crash_debug) += gdbstub.o
-clean:
- rm -f *.o *~ core
+include $(BASEDIR)/Post.mk
# Object file contains changeset and compiler information.
kernel.o: $(BASEDIR)/include/xen/compile.h
-
include $(BASEDIR)/Rules.mk
-OBJS := tables.o
-
-default: driver.o
-driver.o: $(OBJS)
- $(LD) $(LDFLAGS) -r -o driver.o $(OBJS)
+obj-y += tables.o
-clean:
- rm -f *.o *~ core
+include $(BASEDIR)/Post.mk
-
include $(BASEDIR)/Rules.mk
-default: driver.o
-driver.o: $(OBJS)
- $(LD) $(LDFLAGS) -r -o driver.o $(OBJS)
+obj-y += console.o
+obj-y += ns16550.o
+obj-y += serial.o
-clean:
- rm -f *.o *~ core
+include $(BASEDIR)/Post.mk
# Object file contains changeset and compiler information.
console.o: $(BASEDIR)/include/xen/compile.h